package com.nuoniu.sibanyun.service.crm.call;

import com.baomidou.mybatisplus.extension.service.IService;
import com.nuoniu.sibanyun.entity.crm.CrmLinkman;
import com.nuoniu.sibanyun.entity.crm.call.CrmCallTaskDetail;
import com.nuoniu.sibanyun.entity.crm.call.dto.CrmCallTaskDetailSaveDto;
import com.nuoniu.sibanyun.entity.crm.call.dto.CrmCallTaskDetailSearchDto;
import com.nuoniu.sibanyun.entity.crm.call.dto.CrmCallTaskDetailUpdateDto;
import com.nuoniu.sibanyun.userThread.UserInfo;

import java.util.Collection;
import java.util.List;

/**
 * <p>
 * 客户管理-外呼管理-外呼任务明细 服务类
 * </p>
 *
 * @author 白强
 * @since 2022-03-03
 */
public interface ICrmCallTaskDetailService extends IService<CrmCallTaskDetail> {

    /**
     * 查询 任务明细
     * @param crmCallTaskDetailSearchDto
     * @return
     */
    List<CrmCallTaskDetail> listTaskDetail(CrmCallTaskDetailSearchDto crmCallTaskDetailSearchDto);


    /**
     * 从 现有客户中  添加 联系人 到任务明细
     * @param crmCallTaskDetailSaveDto
     */
    void addCallTaskDetail(CrmCallTaskDetailSaveDto crmCallTaskDetailSaveDto);

    /**
     * 从 导入的客户中  添加 联系人 到任务明细
     * @param taskId
     * @param crmLinkmanList
     */
    void andCallTaskDetailFromImportCrmCustomer(UserInfo userInfo,Long taskId, Collection<CrmLinkman> crmLinkmanList);

    /**
     * 批量删除
     * @param taskId
     * @param ids
     */
    void batchDelete(Long taskId,String ids);


    /**
     * 更新 任务明细 状态 和 统计信息（呼叫次数，呼叫接通数量，总通话时长（秒））
     * @param callTaskDetailUpdateDto
     */
    void updateDetailSateAndCount(CrmCallTaskDetailUpdateDto callTaskDetailUpdateDto);


    /**
     * 任务明细数量
     * @param taskIds
     * @return
     */
    Integer detailNum(List<Long> taskIds);
}
